package com.sea.physical.mapper;

import com.sea.physical.entity.CreateDistributeSku;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 分配发运计划明细
 * @author 陈鸿飞
 */
public interface CreateDistributeSkuMapper {

    /**
     * 创建分配明细
     * @return
     */
    int insert(CreateDistributeSku createDistributeSku);

    /**
     * 根据创建ID获取明细
     * @param createId
     * @return
     */
    List<CreateDistributeSku> findByCreateId(Integer createId);

    /**
     * 根据明细ID删除计划
     * @param createSkuId
     * @return
     */
    int deleteByCreateSkuId(Integer createSkuId);


    /**
     * 根据明细查找
     * @param createSkuId
     * @return
     */
    List<CreateDistributeSku> findByCreateSkuId(Integer createSkuId);

    /**
     * 释放占用量
     * @param useNum
     * @param id
     * @return
     */
    int updateUserNum(@Param("useNum") Integer useNum, @Param("id") Integer id);

    /**
     * 修改
     * @param createDistributeSku
     * @return
     */
    int update(CreateDistributeSku createDistributeSku);

    /**
     * 查询指定
     * @param id
     * @return
     */
    CreateDistributeSku findById(Integer id);

    /**
     * 导出数据
     */
    CreateDistributeSku findBySkuIdPo(@Param("createSkuId") Integer createSkuId, @Param("erpProducePo") String erpProducePo);
    /**
     * 导出数据
     */
    List<CreateDistributeSku>getRows(Integer[] ids);
    /**
     * 根据计划ID删除明细
     * @param createId
     * @return
     */
    Integer deleteByCreateId(Integer createId);

    CreateDistributeSku findByDetail(@Param("createId")Integer createId,
                                     @Param("createSkuId")Integer createSkuId,
                                     @Param("createProduceId")Integer createProduceId,
                                     @Param("createNumber")Integer createNumber);

    List<CreateDistributeSku> findByCreateIdSupplier(@Param("createId")Integer createId,
                                                     @Param("createSupplierName")String createSupplierName);

    /**
     *
     * @param createDistributeSku
     * @return
     */
    Integer updateQualityStatus(CreateDistributeSku createDistributeSku);

    /**
     * 查询质检数量
     * @param id
     * @return
     */
    Integer findQualityNumber(Integer id);

    /**
     * 更新占有柜号
     * @return
     */
    Integer updateCreatePlanNo();

    List<CreateDistributeSku> findTotalNumberByCreateId(Integer createId);

    CreateDistributeSku findDetailById(Integer id);

    List<CreateDistributeSku> findDistributeSkuBySupplierName(Integer createId);

    List<CreateDistributeSku> findByCreateIdSupplierName(@Param("createId")Integer createId,@Param("createSupplierName")String createSupplierName);
}
